其他
内存KV缓存/数据库,可以选择它? | 1分钟系列
(1)key和value可以是字符串或者字节流;
(2)数据默认按key排列,有序存储;
画外音:调用方可以重载排序方法,以实现自定义排序。
(3)简单易用,基本操作只有3种:
- Put(key, value)
- Get(key)
- Delete(key)
(4)提供原子批量修改接口;
(5)支持数据快照;
(6)支持数据自动压缩;
(7)开源,文档很详尽,Google出品很可靠;
(2)同时只能有一个进程(当然,这个进程可以是多线程的)访问一个特定的数据库;
(3)LevelDB只是一个lib库,没有实现什么client-server网络通讯什么的,当然用户可以自己将lib包装一层,实现自己的server;
顺序写:平均每次操作耗时1.765微秒,即支持每秒大概55w次顺序写操作;
顺序写+每次都刷盘:平均每次操作耗时268.409微妙,即支持每秒大概3700次的刷盘写操作;
随机写:平均每次操作耗时2.460微秒,即支持每秒大概40w次随机写操作;
更新写:平均每次操作耗时2.380微秒,性能和随机写差不多;
随机读:平均每次操作耗时16.677微秒,即支持每秒大概6w次随机读操作;
顺序读:平均每次操作耗时0.476微秒,即支持每秒大概210w次顺序读操作;
逆序读:平均每次操作耗时0.724微秒,即支持每秒大概130w次逆序读操作;
上述性能都是在没有打开“压缩”功能下的结果,如果打开“压缩”选项,性能会有所提升。
知识星球-刚开始玩
相关推荐:
调研:
你采用啥实现内存KV缓存,"Map+Lock"自己玩么?